import NumberAnimate from "../../utils/NumberAnimate";
const app = getApp()
const {
  getEnterpriseList
} = require("../../utils/http/api")
// 首节流
function throttle(fn, interval) {
  var enterTime = 0;//触发的时间
  var gapTime = interval || 10000;//间隔时间，如果interval不传，则默认300ms
  return function () {
    var context = this;
    var backTime = new Date();//第一次函数return即触发的时间
    if (backTime - enterTime > gapTime) {
      fn.call(context, arguments);
      enterTime = backTime;//赋值给第一次触发的时间，这样就保存了第二次触发的时间
    }
  }
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show: 0,
    top: Number(app.globalData.menu.top),
    height: Number(app.globalData.menu.height),
    bottom: Number(app.globalData.menu.bottom),
    logo:{
      url:"https://www.gcsis.cn/img/logo.png"
    },
    num1: 500,
    num2: 10000,
    num3: 2500,
    num4: 550,
    enterpriseList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getEnterpriseList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

   /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    let _this = this
    _this._observer = wx.createIntersectionObserver()
    _this._observer
      //.relativeTo('.scroll-view')
      .relativeToViewport() //指定页面显示区域作为参照区域之一
      .observe('.number', (res) => { //在参照区域里监听目标节点是否显示
        // console.log(res);
        if (res.intersectionRatio > 0) {
          _this.throttleNumber()
        }
      })

    _this.getEnterpriseList()
  },

  //获取展商列表
  getEnterpriseList(){
    let _this = this
    getEnterpriseList().then(res => {
      if (res.rows.length > 0) {
        const enterpriseList = res.rows
        enterpriseList.forEach((item)=>{
          item.achieveTagsDictData = item.achieveTagsDictData
        })
        _this.setData({
          enterpriseList:enterpriseList
        })
      }
    })
  },
  goDetail(e){
    
    console.log("跳转展商详情",e.currentTarget.dataset)
    wx.navigateTo({
      url: '../organizationDetail/organizationDetail?enterpriseId='+ e.currentTarget.dataset.id ,
    })
  },
  /**
    * 轮播current值监视
    */
  changeCurrent(event) {
    let { current, source } = event.detail
    if (source === 'autoplay' || source === 'touch') {
      this.setData({
        show: event.detail.current
      })
    }
  },

  
  // 节流
  throttleNumber: throttle(function () {
    this.numberAdd()
  }),
  // 数字自动累加
  numberAdd() {
    const { num1, num2, num3, num4 } = this.data
    let n1 = new NumberAnimate({
      from: num1,//开始时的数字
      speed: 2000,// 总时间
      refreshTime: 100,//  刷新一次的时间
      decimals: 0,//小数点后的位数
      onUpdate: () => {//更新回调函数
        this.setData({
          num1: n1.tempValue
        });
      },
      onComplete: () => {//完成回调函数
        // console.log("完成时间累加")
      }
    });
    let n2 = new NumberAnimate({
      from: num2,//开始时的数字
      speed: 2000,// 总时间
      refreshTime: 100,//  刷新一次的时间
      decimals: 0,//小数点后的位数
      onUpdate: () => {//更新回调函数
        this.setData({
          num2: n2.tempValue
        });
      },
      onComplete: () => {//完成回调函数
        // console.log("完成时间累加")
      }
    });
    let n3 = new NumberAnimate({
      from: num3,//开始时的数字
      speed: 2000,// 总时间
      refreshTime: 100,//  刷新一次的时间
      decimals: 0,//小数点后的位数
      onUpdate: () => {//更新回调函数
        this.setData({
          num3: n3.tempValue
        });
      },
      onComplete: () => {//完成回调函数
        // console.log("完成时间累加")
      }
    });
    let n4 = new NumberAnimate({
      from: num4,//开始时的数字
      speed: 2000,// 总时间
      refreshTime: 100,//  刷新一次的时间
      decimals: 0,//小数点后的位数
      onUpdate: () => {//更新回调函数
        this.setData({
          num4: n4.tempValue
        });
      },
      onComplete: () => {//完成回调函数
        // console.log("完成时间累加")
      }
    });
  },
 

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})